package com.itheima.edu.info.manager.service;

import com.itheima.edu.info.manager.dao.StudentDao;
import com.itheima.edu.info.manager.domain.Student;

public class StudentService {

    //1.创建StudentDao（库管）
    private StudentDao studentDao = new StudentDao();

    public boolean addStudent(Student stu) {
        //2.将学生对象传给StudentDao类（库管）中的addStudent()方法中；
        //3.将返回的boolean类型结果返回给Studentservice
        return studentDao.addStudent(stu);
    }

    public boolean isExits(String id) {
        Student[] stus = studentDao.findAllStudent();
//1.创建库管优化了，放到成员变量位置就ok
        //2.假设这个id在数组中不存在
        boolean exits = false;

        //遍历数组，获取到每一个学生对象，准备进行判断
        for (int i = 0; i < stus.length; i++) {
            Student student = stus[i];//把对象拿出来放到 学生里，如果没有对象的话就是空的
            if (student != null && student.getId().equals(id)) {//判断是不是空的,并且要和当前这个id不相等
                exits = true;
                break;
                // student.getId();//这一步还要加，万一取出来的对象是空的，null调用方法，就会出现空指针异常；
            }
        }

        return exits;
    }

    //查询学生
    public Student[] findAllStudent() {
        //1.调用库管数组的findAllStudent获取学生数据
        Student[] allStudent = studentDao.findAllStudent();
        //2.判断数组中是否有学生信息，(有返回内存地址，没有返回一个null)
        //思路：数组中只要存在一个不是null的，那就代表有学生信息
        boolean flag = false;
        for (int i = 0; i < allStudent.length; i++) {
            Student stu = allStudent[i];
            if (stu != null) {//遍历数组判断是否有学生信息
                flag = true;
                break;
            }
        }
        if (flag) {//如果是有数据就是true是true就有学生信息，有学生信息就直接返回学生数组，没有就返回null
            return allStudent;
        } else return null;

    }

    public void deleteStudentById(String id) {
        //拿给库管删除 / 返回是否删除成功
        studentDao.deleteStudentById(id);
    }

    public void updeteStudent(String updeteId, Student newstu) {
        //拿给库管修改
        studentDao.updateStudent(updeteId,newstu);
    }
}
